Switch to winnerspiros/veldrid-spirv fork — 16KB alignment, modern NuGet layout - #212
Merged
Merged
Conversation
…dException on Android startup Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/33ba16d0-ecc5-4da7-b743-de84d0bb08e1 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
- Add local-packages/ NuGet source with fork's NuGet from GitHub Release - Create NuGet.Config with local-packages source + nuget.org - Update osu-framework ppy.Veldrid.SPIRV version - Remove PatchElfPageSize workaround (fork ships 16KB-aligned .so) - Remove MonoAndroid10 AndroidNativeLibrary workaround (fork uses runtimes/ RID layout) - Remove ExcludeAssets/GeneratePathProperty from SPIRV PackageReference - Remove MonoAndroid10 validation check from build - Keep TrimmerRootAssembly safety net for trimmer Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…ework submodule - Add local-packages/.gitignore to override root *.nupkg exclusion - Add ppy.Veldrid.SPIRV.1.0.15-gb268bf39ea.nupkg from GitHub Release - Update osu-framework submodule pointer (bumped ppy.Veldrid.SPIRV version) Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…osu.Android.props Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
winnerspiros
April 19, 2026 22:52
View session
The previous change created a local commit (5bca8375) inside the osu-framework submodule on detached HEAD but never pushed it to winnerspiros/osu-framework. CI failed because `git submodule update --init --recursive` couldn't find the commit on the remote. Fix: revert the submodule pointer to the original 394ecf5d1 which exists on the remote. The SPIRV version upgrade is handled by the direct PackageReference in osu.Android.props (1.0.15-gb268bf39ea from local-packages), while desktop builds continue using the framework's 1.0.15-gfbb03d21c2 from nuget.org. Also add NU1605 to NoWarn to suppress any package downgrade warnings between the two SPIRV versions. Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/c46f1e62-cf7f-49a3-8504-1d852bbf9eae Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Move ppy.Veldrid.SPIRV override from osu.Android.props to Directory.Build.props so ALL projects (desktop, tests, Android) use the winnerspiros/veldrid-spirv fork (1.0.15-gb268bf39ea). Add NU1605 suppression globally since NuGet considers this a "downgrade" (prerelease suffix 'b' < 'f'), but it's actually a newer fork build with bug fixes. Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/c46f1e62-cf7f-49a3-8504-1d852bbf9eae Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
Apr 19, 2026
…PlatformEntryPoint Microsoft.NET.Test.Sdk v18+ auto-generates a MicrosoftTestingPlatformEntryPoint.Main() entry point, which conflicts with the explicit Program.Main() in iOS test projects (they call UIApplication.Main for the iOS app lifecycle). This produces CS7022 warnings. Fix: add GenerateTestingPlatformEntryPoint=false to osu.iOS.props so all iOS projects that import it don't get the conflicting auto-generated entry point. Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/4d7369a8-e06b-489e-96f9-5cf74fd3fd4d Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
The GitHub Action (v0.12) defaults to ReSharper tools 2025.3.3. Override with tool-version: 2026.1.0.1 for the latest analysis engine. Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/b643ce60-59ed-4bfa-b945-ea9fe6829fd7 Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
winnerspiros
approved these changes
Apr 19, 2026
There was a problem hiding this comment.
Pull request overview
Updates build/package configuration to consume the winnerspiros/veldrid-spirv fork of ppy.Veldrid.SPIRV (16KB-aligned Android native library + modern runtimes/ layout), removing prior Android ELF-patching workarounds and aligning CI/iOS settings with newer tooling behavior.
Changes:
- Add repo-local NuGet feed (
local-packages/) and pinppy.Veldrid.SPIRVto1.0.15-gb268bf39eaviaDirectory.Build.props. - Simplify Android build props by removing ELF page-size patching/workarounds and keeping the SPIR-V assembly rooted for trimming.
- Disable auto-generated Microsoft Testing Platform entry point for iOS to avoid
Program.Mainconflicts; set ReSharper InspectCode tool version in CI.
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| osu.iOS.props | Disables generated testing entry point to avoid duplicate Main() warnings in iOS test builds. |
| osu.Android.props | Removes prior 16KB ELF patch pipeline; keeps trimming roots and native lib handling/validation. |
| local-packages/.gitignore | Allows checked-in .nupkg files under local-packages/. |
| NuGet.Config | Adds local-packages source (and clears sources) so the forked .nupkg can be restored. |
| Directory.Build.props | Globally pins ppy.Veldrid.SPIRV to the fork version and suppresses NU1605. |
| .github/workflows/ci.yml | Pins ReSharper InspectCode CLI tool version. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+10
to
+14
| <!-- NU1605: Suppress package downgrade error for ppy.Veldrid.SPIRV. | ||
| We intentionally override the framework's 1.0.15-gfbb03d21c2 with the fork's | ||
| 1.0.15-gb268bf39ea. NuGet considers this a "downgrade" because 'b' < 'f' in | ||
| prerelease suffix comparison, but it's actually a newer fork build. --> | ||
| <NoWarn>$(NoWarn);NU1605</NoWarn> |
Comment on lines
+33
to
+35
| This overrides the framework's transitive reference to 1.0.15-gfbb03d21c2. --> | ||
| <ItemGroup Label="Veldrid.SPIRV Override"> | ||
| <PackageReference Include="ppy.Veldrid.SPIRV" Version="1.0.15-gb268bf39ea" /> |
| and NuGet restore failures for Veldrid.SPIRV. --> | ||
| <Target Name="ValidateFrameworkNativeLibraries" BeforeTargets="Build"> | ||
| <Error Condition="!Exists('$(MSBuildThisFileDirectory)submodules/osu-framework/osu.Framework.Android/arm64-v8a/libbass.so')" | ||
| Text="libbass.so not found in submodules/osu-framework/osu.Framework.Android/arm64-v8a/. Ensure the osu-framework submodule is initialised: git submodule update --init --recursive" /> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GenerateTestingPlatformEntryPoint=falsetoosu.iOS.propsSummary by Gitar
GenerateTestingPlatformEntryPoint=falsetoosu.iOS.propsto resolve iOS entry point build warnings.2026.1.0.1in configuration files.This will update automatically on new commits.